Я столкнулся с той же проблемой чтения невидимых элементов, но мне хотелось вернуть объект WebElement для дальнейшего разбора (а не только его текста).
Этот бит кода выполнил мое требование.
(WebElement) ((JavascriptExecutor) driver).executeScript(
"arguments[0].style[\"display\"] = \"block\";"+
"arguments[0].style[\"visibility\"] = \"visible\";"+
"return arguments[0];",
element);
Это операторы строгого равенства (===,! ==), два операнда должны иметь одинаковый тип и значение, чтобы результат был истинным.
Например:
var_dump(0 == "0"); // true
var_dump("1" == "01"); // true
var_dump("1" == true); // true
var_dump(0 === "0"); // false
var_dump("1" === "01"); // false
var_dump("1" === true); // false
Дополнительная информация:
! ==
проверяет тип переменной, а также значение. Так, например,
$a = 1;
$b = '1';
if ($a != $b) echo 'hello';
if ($a !== $b) echo 'world';
будет выводить просто «мир», поскольку $ a
- целое число, а $ b
- строка.
Вам следует проверить страницу руководства по Операторы PHP , у них есть хорошие объяснения.
Оператор === PHP позволяет сравнивать или тестировать переменные как на равенство, так и на тип.
Итак! == это (не ===)
См. Этот вопрос: Чем отличаются операторы сравнения равенства (==) и идентичности (===)? .
'! ==' - это строгая версия не равняется. Т.е. он также проверит тип.
да, он также проверяет, что два значения относятся к одному типу. Если $ output равен 0, то! == вернет false, потому что они не являются одновременно числами и логическими значениями.